The following example demonstrates how to delete the selected items and handle the DeletingSelectedItemError and DeletingSelectedItems events.
XAML |
Copy Code |
---|---|
<Grid xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid"> <Grid.Resources> <xcdg:DataGridCollectionViewSource x:Key="cvs_orders" Source="{Binding Source={x:Static Application.Current}, Path=Orders}" /> </Grid.Resources> <xcdg:DataGridControl x:Name="OrdersGrid" ItemsSource="{Binding Source={StaticResource cvs_orders}}" IsDeleteCommandEnabled="True" DeletingSelectedItemError="OrdersGrid_DeletingSelectedItemError" DeletingSelectedItems="OrdersGrid_DeletingSelectedItems"/> </Grid> |
VB.NET |
Copy Code |
---|---|
Private Sub OrdersGrid_DeletingSelectedItemError( ByVal sender As Object, ByVal e As DeletingSelectedItemErrorRoutedEventArgs ) Dim result As MessageBoxResult = System.Windows.MessageBox.Show( "The following error occurred while attempting to delete an item: " & _ e.Exception.Message & " Do you want to attempt to continue?", "Error", MessageBoxButton.YesNoCancel ) ' If "No", the item would be skipped. Since "Skip" is the default action, ' there is no need to verify it. If result = MessageBoxResult.Yes Then If Me.OrdersGrid.IsBeingEdited Then Try Me.OrdersGrid.CancelEdit() e.Action = DeletingSelectedItemErrorAction.Retry Catch e.Action = DeletingSelectedItemErrorAction.Skip End Try End If End If If result = MessageBoxResult.Cancel Then e.Action = DeletingSelectedItemErrorAction.Abort End If End Sub Private Sub OrdersGrid_DeletingSelectedItems( ByVal sender As Object, ByVal e As CancelRoutedEventArgs ) Dim result As MessageBoxResult = System.Windows.MessageBox.Show( "Are you certain you want to delete the selected rows?", _ "Confirm Delete", MessageBoxButton.YesNo ) If result = MessageBoxResult.No Then e.Cancel = True End If End Sub |
C# |
Copy Code |
---|---|
private void OrdersGrid_DeletingSelectedItemError( object sender, DeletingSelectedItemErrorRoutedEventArgs e ) { MessageBoxResult result = System.Windows.MessageBox.Show( "The following error occurred while attempting to delete an item: " + e.Exception.Message + " Do you want to attempt to continue?", "Error", MessageBoxButton.YesNoCancel ); // If "No", the item would be skipped. Since "Skip" is the default action, // there is no need to verify it. if( result == MessageBoxResult.Yes ) { if( this.OrdersGrid.IsBeingEdited ) { try { this.OrdersGrid.CancelEdit(); e.Action = DeletingSelectedItemErrorAction.Retry; } catch { e.Action = DeletingSelectedItemErrorAction.Skip; } } } if( result == MessageBoxResult.Cancel ) { e.Action = DeletingSelectedItemErrorAction.Abort; } } private void OrdersGrid_DeletingSelectedItems( object sender, CancelRoutedEventArgs e ) { MessageBoxResult result = System.Windows.MessageBox.Show( "Are you certain you want to delete the selected rows?", "Confirm Delete", MessageBoxButton.YesNo ); if( result == MessageBoxResult.No ) { e.Cancel = true; } } |